import requests
import json
import time
import threading


def test_secondbargaining():
    """测试二次议价接口"""

    url = "http://localhost:8849/secondbargaining/process"

    # 请求体数据
    payload = {

        "form": {
    },
    "conversations": [
        {
            "role": "assistant",
            "content": "1.达人昵称:Doki宋宋（孕期）\n2.达人主页链接:https://www.xiaohongshu.com/user/profile/596e638850c4b475bc3139ce\n3.品牌/产品名称:伊利QQ星\n4.产品品类:伊利奶粉\n5.推广周期:（12月20日前发布）\n6.投放形式:（报备视频80% 报备图文20%）\n7.报备图文价格:（例：23000元）\n8.报备视频价格:（例：29000元）\n9.是否可以保价到次月:（例：是/否）\n10.折扣要求:（30%）\n11.创作方向:单品种草\n12.排竞要求:（前 15 后 15）\n13.寄样方式:寄拍\n14.出镜小孩性别/年龄:（例：女宝，2岁半）\n15.达人是否处于孕期:（例：是，孕12周）\n16.达人场景体验匹配度:（例：家有同款月龄宝宝，每日需洗口水巾/衣物，场景真实）\n17.可保阅读数据:（例：视频保底1万播放，图文保底7000阅读）\n18.可保互动数据:（例：点赞+评论≥400）\n19.是否可以免费授权品牌信息流 6 个月？:（例：可以）\n20.是否可以免费授权品牌二剪及全平台传播（包括电商）6 个月？:（例：可以）\n21.是否可以免费分发其他平台？:（例：可以同步至抖音）\n22.是否有特殊合作注意事项？（如广告占比要求、脚本修改次数等）:（例：广告占比≤25%，脚本初稿可修改2次）\n23.是否免费授权电商平台植入 6 个月？:\n24.是否授权搜索引导6 个月？:\n25.是否授权带相关话题6 个月？:\n26.是否授权组件需求6 个月？:\n27.是否授权引流需求6 个月？:"
        },
        {
            "role": "user",
            "content": "1.达人昵称:Doki宋宋（孕期）\n2.达人主页链接:https://www.xiaohongshu.com/user/profile/596e638850c4b475bc3139ce\n3.品牌/产品名称:伊利QQ星\n4.产品品类:伊利奶粉\n5.推广周期:10.30\n6.投放形式:报备视频\n7.报备图文价格:25000\n8.报备视频价格:29000元\n9.是否可以保价到次月:是\n10.折扣要求:30%\n11.创作方向:单品种草\n12.排竞要求:前 15 后 15\n13.寄样方式:寄拍\n14.出镜小孩性别/年龄:女宝，2岁半\n15.达人是否处于孕期:否\n16.达人场景体验匹配度:可以满足\n17.可保阅读数据:视频保底1万播放\n18.可保互动数据:点赞+评论≥400\n19.是否可以免费授权品牌信息流 6 个月？:可以\n20.是否可以免费授权品牌二剪及全平台传播（包括电商）6 个月？:可以\n21.是否可以免费分发其他平台？:逛逛/微博\n22.是否有特殊合作注意事项？（如广告占比要求、脚本修改次数等）:广告占比≤30%，脚本初稿可修改3次，视频修改2次\n23.是否免费授权电商平台植入 6 个月？:可以\n24.是否授权搜索引导6 个月？:可以\n25.是否授权带相关话题6 个月？:可以\n26.是否授权组件需求6 个月？:可以\n27.是否授权引流需求6 个月？:可以"
        }

    ],
    "status": "1",
    "category": "",
    "is_submit": 0,
	"empty_info": [],
	"diff_info": [],
    "subcategory": "博主权益落实中",
    "cooperation_status": "沟通中",
    "is_first": 1
}

    headers = {
        'Content-Type': 'application/json',
        'User-Agent': 'TestClient/1.0'
    }

    print("🚀 开始连续测试二次议价接口...")

    for i in range(1, 11):
        try:
            print(f"\n📋 第 {i} 次请求...")

            # 发送POST请求
            response = requests.post(
                url,
                data=json.dumps(payload),
                headers=headers,
                timeout=30
            )

            # 打印响应信息
            print(f"✅ 请求 {i} 完成")
            print(f"   状态码: {response.status_code}")
            print(f"   响应时间: {response.elapsed.total_seconds():.2f}秒")

            # 尝试解析JSON响应
            try:
                result = response.json()
                print(f"   响应数据: {json.dumps(result, ensure_ascii=False, indent=2)}")
            except:
                print(f"   响应内容: {response.text[:200]}...")

            # 每次请求间隔1秒，避免服务器压力过大
            if i < 10:
                time.sleep(1)

        except requests.exceptions.ConnectionError:
            print(f"❌ 第 {i} 次请求失败: 无法连接到服务器，请确保服务正在运行")
            break
        except requests.exceptions.Timeout:
            print(f"❌ 第 {i} 次请求失败: 请求超时")
        except Exception as e:
            print(f"❌ 第 {i} 次请求失败: {str(e)}")

    print(f"\n🎉 测试完成！共发送 {min(i, 10)} 次请求")


if __name__ == "__main__":
    test_secondbargaining()